AWS License Managerから購読したRemote Desktop Services SALの有効期間について
しばたです。
去年からAWS License ManagerでRemote Desktop Services SAL (RDS SAL)を単体購読できる様になった件について検証をしてきましたが、RDS SALの有効期間について気になる挙動があったので本記事で共有します。
注意事項
遭遇した事象
2024年11月に新たに単体購読可能になったRDS SALの検証を行い、同月中に全てのユーザーのサブスクリプション購読を解除しました。
全ユーザー11月に購読解除済み(adminユーザーだけは本記事に関連する対応があり12月に再講読している)
SPLAの規約上請求は「日割り無しの月単位課金」のため、これで翌月(2024年12月)の課金が無くなる認識だったのですが一部ユーザーのサブスクリプションに対する請求が継続する事象が発生しました。
AWS License Managerで購読したRemote Desktop Services SALはデフォルトで60日の有効期間が設定される
この事象に関してAWSサポートに問い合わせたところ、
当該ユーザーはサブスクリプションの終了日を迎えていないため請求が継続している。サブスクリプションの終了日はAWS CLIから確認できる。
旨の回答をもらいました。
各ユーザーのサブスクリプションに関する詳細はAWS CLIのaws license-manager-user-subscriptions list-product-subscriptions
コマンドから確認できるのですが、確かに当該ユーザーのサブスクリプションの終了日(SubscriptionEndDate
)がサブスクリプション購読開始日の約60日後になっていました。
# SubscriptionStartDate が SubscriptionEndDate の約60日後になっているユーザーがおり、このユーザーは SubscriptionStartDate まで請求対象となる
$ aws license-manager-user-subscriptions list-product-subscriptions --identity-provider '{"ActiveDirectoryIdentityProvider": {"DirectoryId": "d-xxxxxxxxxx"}}' --product "REMOTE_DESKTOP_SERVICES"
{
"ProductUserSummaries": [
{
"Domain": "corp.contoso.com",
"IdentityProvider": {
"ActiveDirectoryIdentityProvider": {
"ActiveDirectorySettings": {
"DomainCredentialsProvider": {
"SecretsManagerCredentialsProvider": {}
},
"DomainIpv4List": [
"10.0.21.34",
"10.0.22.141"
],
"DomainName": "corp.contoso.com",
"DomainNetworkSettings": {
"Subnets": [
"subnet-xxxxxxxxxxxxxxxxx",
"subnet-xxxxxxxxxxxxxxxxx"
]
}
},
"ActiveDirectoryType": "AWS_MANAGED",
"DirectoryId": "d-xxxxxxxxxx"
}
},
"Product": "REMOTE_DESKTOP_SERVICES",
"ProductUserArn": "arn:aws:license-manager-user-subscriptions:ap-northeast-1:xxxxxxxxxxxx:product-subscription/sub-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
#
# サブスクリプションの購読解除処理を行っているので Status は UNSUBSCRIBED だが、
# SubscriptionEndDate は 2015年1月15日 までとなっている
# ↓
"Status": "UNSUBSCRIBED",
"SubscriptionEndDate": "2025-01-15T07:34:26Z",
"SubscriptionStartDate": "2024-11-16T07:49:52Z",
"Username": "admin"
},
# ・・・省略・・・
]
}
この60日という期間は各ユーザーと紐づくRDS SALのシステム上の有効期限が60日であることに由来するそうです。
- Microsoft Learn : クライアント アクセス ライセンス (CAL) を使用して RDS 展開をライセンスする
RDS CAL (ユーザー数) が期限切れと表示されるのは、発行されてから 60 日後です。 有効期限の直前に、ユーザーがサインインすると、日付がさらに 60 日延長されます。 ユーザーが有効期限の前にサインインしないと、一覧から削除されますが、次回サインインすると、新しい有効期限と一緒に再び表示されます。
この挙動自体はAWSとは関係なくWindows Serverとして一般的なものです。
上述の通り通常は期限が自動延長されるので利用者はこの挙動を意識することが殆どありませんが、AWS License Managerとしてはこの有効期限をチェックしてサブスクリプション期間を設定します。
ちなみに、AWSドキュメントとしては以下の記述がこの仕様の根拠になるとのことでした。
Microsoft RDS is billed on a per user, per month basis, with no proration for partial months.
To stop billing after the end of the current month, you must also remove the user from the Active Directory that's configured for the license server.
If the user continues to log in after the end of the month, they are automatically re-enrolled until their licensing token expires.
60日以内に請求を止めるには上記にある通りActive Directoryユーザー自体の削除が必要です。
簡単なまとめ
ここまでの内容をまとめると
- AWS License Managerで購読したRDS SALはSALライセンスの有効期限(60日)に基いたサブスクリプション期間が設定される
- ユーザーのサブスクリプションを解除してもこのサブスクリプション期間中は請求が継続する
- 請求を止めるにはActive Directoryユーザー自体を削除する必要がある
となります。
個人的にはシステム上のRDS SALの有効期限をそのまま請求期間として扱うのは正直納得いかない[1]のですが、サービスとしてこの様な建付けにすること自体は可能(適法)なので割り切るしかありません。
余談 : サブスクリプションが解除されたユーザーについての請求は 3 か月以内に終了します
余談となりますがマネジメントコンソールからRDS SALを購読している各ユーザーのステータスを確認すると
サブスクリプションが解除されたユーザーについての請求は 3 か月以内に終了します。
というツールチップが表示されます。
初見では謎だったツールチップ表示
最初にこの表示を見た時は何を言っているのか全く理解できなかったのですが、どうやらこれは「RDS SALは最低60日の有効期間が設定されるので3ヶ月分の請求が発生しうる。(RDS SALは日割り無しなので月中から60日足すと3ヶ月間になる事がある)」という意味だった様です。
本件を通して謎が一つ解消されました。
最後に
簡単ですが以上となります。
AWS License ManagerからRDS SALの購読を行った場合はこの様な独自仕様があるので注意すると良いでしょう。
一般的にはSPLAの契約期間と各ライセンスのシステム上の有効期限は別物であり、契約はSPLAの契約期間に基づくのが自然であるため。また、Microsoft Office SALとVisual Studio SALはサブスクリプションを解除すると同時に SubscriptionEndDate も更新されSALに対する挙動に一貫性が無い点も挙げられる。(が、ドキュメントにある様にAWSは意図して一貫性を無くしている) ↩︎